<?php
/**
 * app.php
 * 
 * アプリ基幹ファイル
 * 共通処理をここに記述します。
 */
// MB関数の指定
// SHOULD: 今のところUTF-8以外は対応予定がないものの、将来的には考える。
setlocale(LC_ALL, 'ja_JP.UTF-8');
mb_internal_encoding('UTF-8');
mb_regex_encoding ('UTF-8');

// これはExampleのための定数なので、実際には使わない。
define ('DIR_EXAMPLE', realpath (dirname(__FILE__).'/../'));
define ('DIR_EXAMPLE_APP', DIR_EXAMPLE.'/app');

// MB関数の指定
setlocale(LC_ALL, 'ja_JP.UTF-8');
mb_internal_encoding('UTF-8');
mb_regex_encoding ('UTF-8');

//-------------------------- config part --------------------------//

$Config = Y('Config');

/**
 * サイト全般の設定
 */
$Site = $Config->add('Site', null);
$Site->add('Title', 'YuTori PHP Frameworkへようこそ！');

/**
 * デバッグレベルの指定
 * 
 * $Levelの値を変更することで動作が切り替える。
 * ちなみに、より低いレベルの動作は全て含まれる。
 * 
 * 0: ログの取得、出力等一切しない
 * 1: システムが停止するエラーが発生した場合、ログを出力する
 * 2: システムは停止しないがエラーが発生した場合、ログを出力する
 * 3: 注意メッセージが発生した場合、ログを出力する
 * 4: あらゆるログを出力する
 */
$Level = 4;

$obj = $Config->add(null, 'Debug');
$obj->add('Level', $Level);

// ログモジュールの読み込み
if ($Level > 0) {
	$obj->add('/log', 'LogDir');
	Y('Module')->call('Logger');
}

//-------------------------- model part --------------------------//
// モデルモジュールの指定
// 標準仕様はModelモジュールを使用する。
Y('Module')->call('Model');
// モデルディレクトリの指定。現状は設定必須。
Y('Module.Model.ModelDir')->set (DIR_EXAMPLE_APP.'/models');

//-------------------------- view part --------------------------//

// ビューモジュールの指定
// 標準仕様はViewモジュールを使用する。
Y('Module')->call('View');

// デフォルトのヘッダ・フッタを指定。このあたりはテンプレート側の都合で任意に決定できる。
Y('View.Common')->add(Y::file(DIR_));

$Head = Y('View.getType')->call($_SERVER['REQUEST_URI']);
